package com.operator.Activitys.activity;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LinearInterpolator;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.flyco.tablayout.SegmentTabLayout;
import com.flyco.tablayout.listener.OnTabSelectListener;
import com.google.gson.Gson;
import com.operator.Activitys.R;
import com.operator.Activitys.activity.base.BaseActivity;
import com.operator.Activitys.adapter.SalesRecordAdapter;
import com.operator.Activitys.bean.SalesRecord;
import com.operator.Activitys.bean.User;
import com.operator.Activitys.bean.pack.SalesRecordJsonPack;
import com.operator.Activitys.http.manager.UserManager;
import com.operator.Activitys.utils.Constant;
import com.operator.Activitys.utils.StringUtils;
import com.operator.Activitys.utils.ToastUtils;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.zhy.autolayout.AutoLinearLayout;

import org.simple.eventbus.Subscriber;
import org.simple.eventbus.ThreadMode;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import butterknife.Bind;
import butterknife.OnClick;

/**
 * 项目名称：金泽云 手机app
 * 类描述：销售记录
 * 创建人：张飞祥
 * 创建时间：2018/5/7 15:31
 * 修改人：张飞祥
 * 修改时间：2018/5/7 15:31
 * 修改备注：
 */
public class SalesRecordActivity extends BaseActivity implements OnTabSelectListener {


    /**
     * View 定义
     */
    //返回按钮
    @Bind(R.id.iv_return) ImageView ivReturn;
    //标题
    @Bind(R.id.tv_title) TextView tvTitle;
    //TabLayout
    @Bind(R.id.tab_sales_layout) SegmentTabLayout tabSalesLayout;
    //时间段 --->  开始时间
    @Bind(R.id.tv_sales_start_data) TextView tvSalesStartData;
    //时间段 --->  结束时间
    @Bind(R.id.tv_sales_stop_data) TextView tvSalesStopData;
    //销售 || 报装 左侧标题文字
    @Bind(R.id.tv_sales_left_title) TextView tvSalesLeftTitle;
    //销售 || 报装 数量
    @Bind(R.id.tv_sales_number) TextView tvSalesNumber;
    //已返金额
    @Bind(R.id.tv_sales_cost) TextView tvSalesCost;
    //卡号销售 列表标题
    @Bind(R.id.layout_sales_card) AutoLinearLayout layoutSalesCard;
    //宽带销售 列表标题
    @Bind(R.id.layout_sales_wb) AutoLinearLayout layoutSalesWb;

    //TODO 有数据显示视图
    //上拉加载视图
    SmartRefreshLayout layoutRefresh;
    //列表视图
    RecyclerView rvList;

    //TODO 无数据显示视图
    //圆圈 img
    ImageView ivLoad;
    //加载布局
    AutoLinearLayout layoutLoad;
    //刷新文字
    TextView tvPush;
    //刷新布局
    AutoLinearLayout layoutPush;
    //外层预加载视图
    RelativeLayout layoutNoData;

    /**
     * 变量 定义
     */
    //TabLayout 标题
    private String[] mTitles = {"号卡销售", "宽带销售"};
    //销售记录 tab 标志位
    private int mSalesPos = 0;
    //获取系统时间
    private Calendar mCal;
    //年月日
    private int mYear, mMonth, mDay;
    //开始与结束时间
    private String mStartDate, mStopDate = "";

    //TODO 当前 内存中 用户信息
    private User mACacheUser = null;

    //TODO 初始化网络请求
    public UserManager mApiManager;

    //TODO http 变量
    //请求哪一页
    private int mIndex = 1;
    //每页几条
    private int mPageCount = 10;
    //上拉加载 没有数据 page 是否 +1
    private boolean mPullPageFlag = true;
    //网络请求 true：错误 ，false 为空
    public boolean mHttpErrorFlag;

    //TODO 转账记录
    //转账记录 adapter
    private SalesRecordAdapter mAdapter = null;
    //转账记录 list
    private List<SalesRecord> mSalesList = null;

    @Override
    protected void initUI() {
        setContentView(R.layout.act_sales_record);

        //网络请求接口 常驻方法
        mApiManager = mApiManager.getUserApiManager(this,this.getTaskId());
        //TODO 获取内存用户实体
        Gson gson = new Gson();
        mACacheUser = gson.fromJson(mACache.getAsJSONObject(Constant.CACHE_USER) + "", User.class);

        //TODO 初始化控件
        initViews();

        //显示返回按钮
        ivReturn.setVisibility(View.VISIBLE);
        //设置标题
        tvTitle.setText("销售记录");
        //设置滑块数据
        tabSalesLayout.setTabData(mTitles);

        //TODO  获取上个页面 传递过来的 Bundle 数据
        Bundle bundle = this.getIntent().getExtras();
        if (bundle != null) {
            //电信、移动卡 tag
            mSalesPos = bundle.getInt(Constant.INTENT_SALES_TAG);
            //TODO 动态显示页面
            if (mSalesPos == 0)
                setCardSalesView(mSalesPos);
            else
                setWBSalesView(mSalesPos);
        }
        //获取当前系统时间
        getSystemDate();

        //TODO 禁止下拉加载
        layoutRefresh.setEnableRefresh(false);
    }

    @Override
    protected void initData() {
        //TabLayout 事件监听
        tabSalesLayout.setOnTabSelectListener(this);
        //TODO 开始网络请求 获取卡号列表
        initHttp();
        //TODO 上拉加载
        initLoadMoreListener();
    }

    /**
     * http 销售记录 网络请求
     */
    private void initHttp(){

        //清空列表
        if (mSalesList != null && mSalesList.size()>0)
            mSalesList.clear();
        //初始化全局 list
        mSalesList = new ArrayList<>();

        //设置 为 首次加载
        mApiManager.getType(Constant.FIRST_LOAD);
        //初始化 上拉加载  page 允许 +1
        mPullPageFlag = true;
        //初始化页数
        mIndex = 1;

        //显示无数据 刷新加载页面
        initShowViewLoading(true);

        //TODO http 动态请求判断
        if (mSalesPos == 0)
            //号卡销售记录 请求
            mApiManager.userCardSalesList(mACacheUser.getId(),mIndex,mPageCount,mStartDate,mStopDate);
        else
            //宽带销售记录 请求
            mApiManager.userInstallSalesList(mACacheUser.getId(),mIndex,mPageCount,mStartDate,mStopDate);
    }

    /**
     * 上拉加载数据
     */
    private void initLoadMoreListener() {

        layoutRefresh.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(RefreshLayout refreshlayout) {
                //设置文字上拉加载更多
                mApiManager.getType(Constant.PULLUP_LOAD_MORE);
                //如果 为 true 可以 查看下一页
                if (mPullPageFlag) {
                    //数据请求
                    mIndex = mIndex + 1;
                }
                //TODO http 动态请求判断
                if (mSalesPos == 0)
                    //号卡销售记录 请求
                    mApiManager.userCardSalesList(mACacheUser.getId(),mIndex,mPageCount,mStartDate,mStopDate);
                else
                    //宽带销售记录 请求
                    mApiManager.userInstallSalesList(mACacheUser.getId(),mIndex,mPageCount,mStartDate,mStopDate);
            }
        });
    }

    /**
     * 无数据页面
     */
    public void initShowViewLoading(boolean loadFlag) {
        //重新加载初始化视图
        initViews();
        //最外层无数据页面 显示
        layoutNoData.setVisibility(View.VISIBLE);
        //号卡列表 数据展示页面 隐藏
        layoutRefresh.setVisibility(View.GONE);
        /**
         * 动态判断 显示 当前 是重新加载页面，还是 圆圈页面
         *
         * true： 圆圈页面
         * false：重新加载页面
         */
        if (loadFlag) {
            initShowLoadRotate();
        }else{

            //隐藏圆圈页面
            layoutLoad.setVisibility(View.GONE);
            //显示重新加载页面
            layoutPush.setVisibility(View.VISIBLE);

            /**
             * 动态判断 当前 是网络 问题？ 还是 数据为空，显示不同的字段 与操作
             */
            if (mHttpErrorFlag){
                //TODO 设置重新加载文字，重新加载网络请求
                String pushStr = "重新加载";
                //给文字添加下划线，并且添加点击事件
                tvPush.setText(StringUtils.setString(pushStr, 0, pushStr.length(),
                        new ForegroundColorSpan(Color.parseColor("#808080")), new ClickableSpan() {
                            @Override
                            public void onClick(View view) {
                                //开始网络请求
                                initHttp();
                                //显示圆圈加载页面
                                initShowLoadRotate();
                            }
                        }));
                tvPush.setMovementMethod(LinkMovementMethod.getInstance());
            }else{
                tvPush.setText("暂无数据");
            }
        }
    }

    /**
     * 转圈 动画布局显示
     */
    public void initShowLoadRotate(){
        /**
         * 开始倒计时
         */
        //显示圆圈页面
        layoutLoad.setVisibility(View.VISIBLE);
        //隐藏重新加载页面
        layoutPush.setVisibility(View.GONE);
        /**
         * 设置圆圈动画
         */
        Animation circle_anim = AnimationUtils.loadAnimation(this, R.anim.load_public_rotate);
        LinearInterpolator interpolator = new LinearInterpolator();  //设置匀速旋转，在xml文件中设置会出现卡顿
        circle_anim.setInterpolator(interpolator);
        if (circle_anim != null) {
            ivLoad.startAnimation(circle_anim);  //开始动画
        }
    }

    /**
     * 有数据数据页面
     */
    public void initShowViewData() {
        //重新加载初始化视图
        initViews();
        //号卡列表 显示
        layoutRefresh.setVisibility(View.VISIBLE);
        //最外层无数据页面 隐藏
        layoutNoData.setVisibility(View.GONE);
    }


    /**
     * 按钮点击事件
     * @return
     */
    @OnClick({R.id.iv_return,R.id.tv_sales_start_data,R.id.tv_sales_stop_data,
            R.id.btn_sales_whole})
    public void onClick(View view){
        switch (view.getId()){

            case R.id.iv_return:             //返回按钮
                finish();
                break;

            case R.id.tv_sales_start_data:   //时间段 --->  开始时间
                setStartData();
                break;

            case R.id.tv_sales_stop_data:    //时间段 --->  结束时间
                setStopData();
                break;

            case R.id.btn_sales_whole:       //全部按钮
                setSearchAllHttp();
                break;
        }
    }

    /**
     * 搜索全部 网络请求事件
     */
    private void setSearchAllHttp() {
        //TODO 初始化参数
        //开始时间
        mStartDate = "";
        //结束时间
        mStopDate = "";
        //初始化 开始时间
        tvSalesStartData.setText("----/--/--");
        //初始化 结束时间
        tvSalesStopData.setText("----/--/--");
        //TODO 开始网络请求
        initHttp();
    }


    /**
     * 设置 开始 日期
     */
    public void setStartData(){
        //TODO 日期选择控件
        Dialog dateDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                //TODO 获取日期
                String  strData = year + "/" + (++month < 10 ? "0" + month : month) + "/" + (day < 10 ? "0" + day : day);
                //TODO 设置开始日期
                mStartDate = strData + " 00:00:00";
                //TODO 设置结束日期
                mStopDate  = tvSalesStopData.getText().toString() + " 23:59:59";

                /**
                 * 销售记录 网络请求 判断
                 *
                 * 1.判断 开始时间 是否 <= 结束时间
                 *      true： 在判断 结束时间 是否 为 初始值 "----/--/--（格式：2018/07/05）"
                 *          --->true： 开始 调用网络请求
                 *          --->false：什么也不做
                 *
                 *      false：弹出 相应的 提示
                 */
                if (!StringUtils.compareDate(mStartDate,mStopDate)){
                    //添加开始日期 到控件上
                    tvSalesStartData.setText(strData);
                    if (!mStopDate.equals("----/--/--") && !mStopDate.equals("----/--/-- 23:59:59")){
                        initHttp();
                    }
                }else{
                    ToastUtils.showShort(SalesRecordActivity.this, "起始时间不能大于结束时间哦！");
                }
            }
        }, mYear, mMonth, mDay);
        //弹出时间选择器
        dateDialog.show();
    }

    /**
     * 设置 结束 日期
     */

    public void setStopData(){
        //TODO 日期选择控件
        Dialog dateDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                //TODO 获取日期
                String  strData = year + "/" + (++month < 10 ? "0" + month : month) + "/" + (day < 10 ? "0" + day : day);
                //TODO 设置结束日期
                mStopDate = strData + " 23:59:59";
                //TODO 设置开始日期
                mStartDate = tvSalesStartData.getText().toString() + " 00:00:00";

                /**
                 * 销售记录 网络请求 判断
                 *
                 * 1.判断 结束时间 是否 >= 开始时间
                 *      true： 在判断 结束时间 是否 为 初始值 "----/--/--（格式：2018/07/05）"
                 *          --->true： 开始调用网络请求
                 *          --->false：什么也不做
                 *
                 *      false：弹出 相应的 提示
                 */
                if (!StringUtils.compareDate(mStartDate,mStopDate)){
                    //添加结束日期 到控件上
                    tvSalesStopData.setText(strData);
                    if (!mStartDate.equals("----/--/--") && !mStartDate.equals("----/--/-- 00:00:00")){
                        initHttp();
                    }
                }else{
                    ToastUtils.showShort(SalesRecordActivity.this, "结束时间不能小于起始时间哦！");
                }
            }
        }, mYear, mMonth, mDay);
        //弹出时间选择器
        dateDialog.show();
    }

    /**
     * TabLayout 事件监听
     * @param position
     */
    @Override
    public void onTabSelect(int position) {
        //设置 全局 宽带 tag
        mSalesPos = position;

        /**
         * 根据 tab 位置，动态变更显示 布局
         */
        if (position == 0)
            setCardSalesView(position);
        else
            setWBSalesView(position);
    }
    @Override
    public void onTabReselect(int position) {
    }

    /**
     * 卡号销售 布局显示
     */
    public void setCardSalesView(int position){
        //设置 tab 标志位
        tabSalesLayout.setCurrentTab(position);
        //设置 销售 左侧标题文字
        tvSalesLeftTitle.setText("已 销 售：");
        //设置 卡号销售 标题布局 显示
        layoutSalesCard.setVisibility(View.VISIBLE);
        //设置 宽带销售 标题布局 隐藏
        layoutSalesWb.setVisibility(View.GONE);
        //TODO 搜索全部网络请求
        setSearchAllHttp();
    }

    /**
     * 宽带销售 布局显示
     */
    public void setWBSalesView(int position){
        //设置 tab 标志位
        tabSalesLayout.setCurrentTab(position);
        //设置 销售 左侧标题文字
        tvSalesLeftTitle.setText("成功报装：");
        //设置 卡号销售 标题布局 隐藏
        layoutSalesCard.setVisibility(View.GONE);
        //设置 宽带销售 标题布局 显示
        layoutSalesWb.setVisibility(View.VISIBLE);
        //TODO 搜索全部网络请求
        setSearchAllHttp();
    }

    /**
     * -------------------------------------------  http 号卡销售记录 返回 相关操作  -------------------------------------------
     */
    /**
     * 号卡销售列表 报错
     */
    @Subscriber(tag = Constant.BUS_MY_SALES_CARD_LIST_ERROR, mode = ThreadMode.MAIN)
    public void initCardSalesListError(String httpCommentError) {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //TODO View 非空判断
                if (layoutRefresh != null) {
                    //当前是 网络请求 出错
                    mHttpErrorFlag = true;
                    //结束加载
                    layoutRefresh.finishLoadMore(false);
                    //显示无数据 重新加载页面
                    initShowViewLoading(false);
                    //弹出提示
                    ToastUtils.showShort(SalesRecordActivity.this, "加载数据失败！");
                }
            }
        }, 3000);
    }


    /**
     * 号卡销售列表 首次列表数据加载
     */
    @Subscriber(tag = Constant.BUS_MY_SALES_CARD_LIST, mode = ThreadMode.MAIN)
    public void initCardSalesList(final SalesRecordJsonPack pack) {
        //获取数据源
        final List<SalesRecord> list = pack.getData();

        //TODO 设置已销售 数量
        if (pack.getTotal() == 0)
            tvSalesNumber.setText(0+" 张");
        else
            tvSalesNumber.setText(pack.getTotal()+" 张");

        //TODO 设置销售 已返金额
        if (pack.getCashMoney() == null)
            tvSalesCost.setText(0+" 元");
        else
            tvSalesCost.setText(pack.getCashMoney()+" 元");

        //开启延时操作
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //TODO View 非空判断
                if (rvList != null) {
                    if (list != null && list.size() != 0) {

                        //显示 数据列表 布局
                        initShowViewData();
                        //设置 全局"号卡列表"变量 数据
                        mSalesList.addAll(list);
                        //设置 号卡列表 适配器
                        mAdapter = new SalesRecordAdapter(SalesRecordActivity.this, mSalesPos, list);

                        //添加 适配器 样式
                        rvList.setLayoutManager(new LinearLayoutManager(SalesRecordActivity.this, LinearLayoutManager.VERTICAL, false));
                        //添加 适配器
                        rvList.setAdapter(mAdapter);
                    } else {
                        //当前是 数据错误
                        mHttpErrorFlag = false;
                        //显示无数据 重新加载页面
                        initShowViewLoading(false);
                    }
                }
            }
        }, 1000);
    }

    /**
     * 号卡销售列表 上拉加载数据
     */
    @Subscriber(tag = Constant.BUS_MY_SALES_CARD_LIST_FOOT)
    public void initCardSalesListFoot(SalesRecordJsonPack pack) {
        //获取 新增数据
        final List<SalesRecord> footList = pack.getData();
        //开启延时操作
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //TODO View 非空判断
                if (layoutRefresh != null) {
                    /**
                     * 判断是否有数据
                     * 当 返回列表 数据 size 0 没有更多数据可加载了
                     */
                    if (footList.size() == 0) {
                        //page 不允许 + 1
                        mPullPageFlag = false;
                        //显示提示
                        ToastUtils.showShort(SalesRecordActivity.this, "没有更多数据了");
                    } else {
                        //page 允许 + 1
                        mPullPageFlag = true;
                        //填充上拉加载数据，加载到adapter里面
                        if (mAdapter != null) {
                            mAdapter.addFooterItem(footList);
                            mSalesList.addAll(footList);
                        }
                        ToastUtils.showShort(SalesRecordActivity.this, "更新了 " + footList.size() + " 条目数据");
                    }
                    //结束加载
                    layoutRefresh.finishLoadMore();
                }
            }
        }, 1000);
    }

    /**
     * -------------------------------------------  http 宽带销售记录 返回 相关操作  -------------------------------------------
     */
    /**
     * 宽带销售列表 报错
     */
    @Subscriber(tag = Constant.BUS_MY_SALES_INSTALL_LIST_ERROR, mode = ThreadMode.MAIN)
    public void initInstallSalesListError(String httpCommentError) {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //TODO View 非空判断
                if (layoutRefresh != null) {
                    //当前是 网络请求 出错
                    mHttpErrorFlag = true;
                    //结束加载
                    layoutRefresh.finishLoadMore(false);
                    //显示无数据 重新加载页面
                    initShowViewLoading(false);
                    //弹出提示
                    ToastUtils.showShort(SalesRecordActivity.this, "加载数据失败！");
                }
            }
        }, 3000);
    }


    /**
     * 宽带销售列表 首次列表数据加载
     */
    @Subscriber(tag = Constant.BUS_MY_SALES_INSTALL_LIST, mode = ThreadMode.MAIN)
    public void initInstallSalesList(final SalesRecordJsonPack pack) {
        //获取数据源
        final List<SalesRecord> list = pack.getData();

        //TODO 设置已销售 数量
        if (pack.getTotal() == 0)
            tvSalesNumber.setText(0+" 条");
        else
            tvSalesNumber.setText(pack.getTotal()+" 条");

        //TODO 设置销售 已返金额
        if (pack.getCashMoney() == null)
            tvSalesCost.setText(0+" 元");
        else
            tvSalesCost.setText(pack.getCashMoney()+" 元");

        //开启延时操作
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //TODO View 非空判断
                if (rvList != null) {
                    if (list != null && list.size() != 0) {

                        //显示 数据列表 布局
                        initShowViewData();
                        //设置 全局"号卡列表"变量 数据
                        mSalesList.addAll(list);
                        //设置 号卡列表 适配器
                        mAdapter = new SalesRecordAdapter(SalesRecordActivity.this, mSalesPos, list);

                        //添加 适配器 样式
                        rvList.setLayoutManager(new LinearLayoutManager(SalesRecordActivity.this, LinearLayoutManager.VERTICAL, false));
                        //添加 适配器
                        rvList.setAdapter(mAdapter);
                    } else {
                        //当前是 数据错误
                        mHttpErrorFlag = false;
                        //显示无数据 重新加载页面
                        initShowViewLoading(false);
                    }
                }
            }
        }, 1000);
    }

    /**
     * 宽带销售列表 上拉加载数据
     */
    @Subscriber(tag = Constant.BUS_MY_SALES_INSTALL_LIST_FOOT)
    public void initInstallSalesListFoot(SalesRecordJsonPack pack) {
        //获取 新增数据
        final List<SalesRecord> footList = pack.getData();
        //开启延时操作
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //TODO View 非空判断
                if (layoutRefresh != null) {
                    /**
                     * 判断是否有数据
                     * 当 返回列表 数据 size 0 没有更多数据可加载了
                     */
                    if (footList.size() == 0) {
                        //page 不允许 + 1
                        mPullPageFlag = false;
                        //显示提示
                        ToastUtils.showShort(SalesRecordActivity.this, "没有更多数据了");
                    } else {
                        //page 允许 + 1
                        mPullPageFlag = true;
                        //填充上拉加载数据，加载到adapter里面
                        if (mAdapter != null) {
                            mAdapter.addFooterItem(footList);
                            mSalesList.addAll(footList);
                        }
                        ToastUtils.showShort(SalesRecordActivity.this, "更新了 " + footList.size() + " 条目数据");
                    }
                    //结束加载
                    layoutRefresh.finishLoadMore();
                }
            }
        }, 1000);
    }

    /**
     * 初始化 view 视图
     */
    private void initViews() {

        /**
         * 数据预加载页面
         */
        //圆圈 img
        ivLoad = (ImageView) findViewById(R.id.iv_load);
        //加载布局
        layoutLoad = (AutoLinearLayout) findViewById(R.id.layout_load);
        //刷新文字
        tvPush = (TextView) findViewById(R.id.tv_push);
        //刷新布局
        layoutPush = (AutoLinearLayout) findViewById(R.id.layout_push);
        //外层预加载视图
        layoutNoData = (RelativeLayout) findViewById(R.id.layout_no_data);

        /**
         * 有数据展示页面
         */
        //加载视图
        layoutRefresh = (SmartRefreshLayout) findViewById(R.id.layout_refresh);
        //列表视图
        rvList = (RecyclerView) findViewById(R.id.rv_list);
    }

    /**
     * 获取当前系统日期
     */
    private void getSystemDate() {
        mCal = Calendar.getInstance();
        mYear = mCal.get(Calendar.YEAR);       //获取年月日时分秒
        mMonth = mCal.get(Calendar.MONTH);     //获取到的月份是从0开始计数
        mDay = mCal.get(Calendar.DAY_OF_MONTH);
    }
}
